/*
题目：合并零之间的零点
给你一个链表的头节点 head ，该链表包含由 0 分隔开的一连串整数。链表的 开端 和 末尾 的节点都满足 Node.val == 0 。

对于每两个相邻的 0 ，请你将它们之间的所有节点合并成一个节点，其值是所有已合并节点的值之和。然后将所有 0 移除，修改后的链表不应该含有任何 0 。

 返回修改后链表的头节点 head 。
 */
public class MergeNodes {
    public ListNode mergeNodes(ListNode head) {
        ListNode dummy = new ListNode();
        ListNode go = head;
        ListNode ret = dummy;//返回值，记录dummy位置
        int sum = 0;
        while (go.val == 0) {
            go = go.next;
        }  //↑跳过开头的空格
        while (go != null) {
            if (go.val != 0) {
                sum += go.val;
            } else {
                ListNode tmp = new ListNode(sum);
                sum = 0;
                dummy.next = tmp;
                dummy = dummy.next;
            }
            go = go.next;
        }
        return ret.next;
    }
}
